package com.zuipin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.SysRoleMenu;
import com.zuipin.util.Pagination;

/**
 *  角色-菜单(权限)mapper
  * @ClassName: SysRoleMenuMapper
  * @Description: TODO
  * @author robot
  * @date 2017年09月147日 09:21:08
  *
 */
@Mapper
public interface SysRoleMenuMapper {
	/**
	  * 查询角色-菜单(权限)
	  * @Title: findById
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param id,
	  * @return
	  * @return SysRoleMenu
	 */
	public SysRoleMenu findById(Long id);
	
	/**
	  * 插入角色-菜单(权限)操作
	  * @Title: insert
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysRoleMenu
	  * @return void
	 */
	public void insert(SysRoleMenu sysRoleMenu);
	
	/**
	  *  更新角色-菜单(权限)操作
	  * @Title: update
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysRoleMenu
	  * @return void
	 */
	public void update(SysRoleMenu sysRoleMenu);
	
	/**
	  * 删除角色-菜单(权限)
	  * @Title: delete
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param id,
	  * @return void
	 */
	public void delete(Long id);
	
	/**
	 * 搜索角色-菜单(权限), 并自动分页
	  *  @Title: seachSysRoleMenu
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysRoleMenu
	  * @param page
	  * @return
	  * @return List<SysRoleMenu>
	 */
	public List<SysRoleMenu> seachSysRoleMenu(@Param("sysRoleMenu") SysRoleMenu sysRoleMenu, @Param("page") Pagination page);
	
	/**
	 * 	通用搜索接口
	  *  @Title: seachSysRoleMenu
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysRoleMenu
	  * @param page
	  * @return
	  * @return List<SysRoleMenu>
	 */
	public List<SysRoleMenu> findSysRoleMenuBySelected(@Param("sysRoleMenu") SysRoleMenu sysRoleMenu);
	
	/**
	 * 查询用户或角色所拥有的模块权限
	 * @param userId
	 * @param roleId
	 * @param roleStatus
	 * @return
	 */
	public List<SysRoleMenu> queryMenuByPermission(@Param("userId") Long userId, @Param("roleId") Long roleId, @Param("roleStatus") Integer roleStatus);
	
}